package top.lixunda.ecommerce.server.good.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.lixunda.ecommerce.server.good.api.entity.db.LogGoodPriceDO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Xumda
 * @since 2019-12-18
 */
public interface ILogGoodPriceService extends IService<LogGoodPriceDO> {

    /**
     * 根据商品id查询商品的价格变化曲线
     *
     * @param id 商品id
     * @return 价格变化记录，默认时间升序排列
     */
    List<LogGoodPriceDO> queryByGoodId(Integer id);

    /**
     * 根据商品分类id查询商品某个分类的价格变化曲线
     *
     * @param id 商品分类id
     * @return 价格变化记录，默认时间升序排列
     */
    List<LogGoodPriceDO> queryByGoodTypeId(Integer id);

    /**
     * 为某个子商品添加一条价格变化记录
     *
     * @param id    子商品id
     * @param price 新的价格，不能小于等于零
     * @return 返回添加的记录
     */
    LogGoodPriceDO addGoodPriceLog(Integer id, Double price);

    /**
     * 为多个子商品添加价格变化记录
     *
     * @param map 键值对，键为子商品id，值为价格
     * @return 返回添加成功的记录
     */
    List<LogGoodPriceDO> addGoodPriceLogs(Map<Integer, Double> map);

}
